package com.spring.pick2pick.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import org.springframework.stereotype.Repository;

import com.spring.pick2pick.common.PageHandler;
import com.spring.pick2pick.model.AdminItem;

/** 관리자 계정의 기능을 처리하는 Dao */
@Repository
public class AdminDao {

	@Autowired
	private SqlMapClientTemplate sqlMapClientTemplate;
	
	/** 관리자 계정 추가 기능 */
	public int addAdmin(AdminItem item) {
		return (Integer) sqlMapClientTemplate.insert("admin.addAdmin", item);
	}
	
	/** 관리자 계정 활성여부 기능 */
	public int editActivity(AdminItem item) {
		return (Integer) sqlMapClientTemplate.update("admin.editActivity", item);
	}
	
	/** 관리자 계정 수정 기능 */
	public int editAdmin(AdminItem item) {
		return (Integer) sqlMapClientTemplate.update("admin.editAdmin", item);
	}
	
	/** 관리자 계정 삭제 기능 */
	public int deleteAdmin(AdminItem item) {
		return (Integer) sqlMapClientTemplate.delete("admin.deleteAdmin", item);
	}
	
	/** 관리자 계정 조회 기능 */
	public AdminItem getAdmin(AdminItem item) {
		return (AdminItem) sqlMapClientTemplate.queryForObject("admin.getAdmin", item);
	}
	
	/** 관리자 계정 리스트 기능 */
	@SuppressWarnings("unchecked")
	public List<AdminItem> getAdminList(int page, int size) {
		
		int total = (Integer) sqlMapClientTemplate.queryForObject("admin.getAdminListCount");
		
		// 페이징 처리 --> 한 페이지에 count개씩, 페이지번호는 10개 출력
		PageHandler.getInstance(page, total, size, 10);
		
		Map<String, Integer> map = new HashMap<String, Integer>(); 
		map.put("start", PageHandler.getInstance().getStartRec());
		map.put("end", PageHandler.getInstance().getPageArticleCount());
		
		List<AdminItem> list = sqlMapClientTemplate.queryForList("admin.getAdminList", map);
		
		return list;
	}
	
	/** 관리자 계정 로그인 기능 */
	public AdminItem doLogin(AdminItem item) {
		return (AdminItem) sqlMapClientTemplate.queryForObject("admin.doLogin", item);
	}

}
